﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using ManagerInfosSuite.Manager;

namespace ManagerInfosSuite
{
    public partial class Report : Form
    {
        public ManagerQuiz MQuiz = new ManagerQuiz();

        public List<TipologiaTest> ListaTipologiaTest;

        public Report()
        {
            InitializeComponent();
            ListaTipologiaTest = MQuiz.GetReportNumPartiteGiocate();
            LVTipologieTest.Items.Clear();
            foreach (var item in ListaTipologiaTest)
            {
                string[] stringa = new string[4];
                stringa[0] = (LVTipologieTest.Items.Count + 1).ToString();
                stringa[1] = item.Descrizione;
                stringa[2] = item.Domande.Count.ToString();
                stringa[3] = item.PartiteRegistrate.ToString();
                LVTipologieTest.Items.Add(new ListViewItem(stringa));
            }

            cmbTipologia.Items.Clear();
            foreach (var item in ListaTipologiaTest)
                cmbTipologia.Items.Add(item.Descrizione);
        }


        private void cmbTipologia_SelectedValueChanged(object sender, EventArgs e)
        {
            string testo = cmbTipologia.SelectedItem.ToString();
            int index = (int)ListaTipologiaTest.Where(x => x.Descrizione == testo).Select(x => x.IdTipologiaTest).Single();
            var lista = MQuiz.GetPunteggiByIdTipologia(index);
            lvPunteggi.Items.Clear();
            foreach (var item in lista)
            {
                string[] stringa = new string[4];
                stringa[0] = (lvPunteggi.Items.Count + 1).ToString();
                stringa[1] = item.Account;
                stringa[2] = item.Punteggio.ToString();
                stringa[3] = item.IdPunteggio.ToString();
                lvPunteggi.Items.Add(new ListViewItem(stringa));
            }
        }

        private void btnCancella_Click(object sender, EventArgs e)
        {
            List<int> indexDeleteitem = new List<int>();
            foreach (ListViewItem item in lvPunteggi.SelectedItems)
            {
                long idpunteggio = Convert.ToInt64(item.SubItems[3].Text);
                bool esito = MQuiz.DeleteSingoloPunteggio(idpunteggio);
                if (esito)
                    indexDeleteitem.Add(item.Index);
            }
            for (int i = indexDeleteitem.Count - 1; i >= 0; i--)
            {
                lvPunteggi.Items.RemoveAt(indexDeleteitem[i]);
            }
        }
    }
}
